perm filename MIXIO.FAI[OLD,LCS] blob
sn#058121 filedate 1974-01-08 generic text, type T, neo UTF8
00100 ;**** UDP PORTIONS ARE FOR STANFORD DISK SYSTEM(USER-DISK PACK)
00200 ; MTA1 ITEMS ARE USED WITH "TAPMUS" (ETC.), TAPE TRANSFER PROGS.
00300 TITLE MIXIO ; ********* AUG 13,73 *********
00700 INTERNAL GETFI2,FASTI2,ZBIT,USETI
00800
00900 ; USE UDFAST.DMP[1,3] TO PLAY FROM UDP
01000
01200 ;SET TO 1 FOR FILE STRUCTURED UDP
01400
01500 CHβ12
01600 CH2β11
01650 CH3β13
01800
01900 DEFINE ERROR (MSG)
02000 < JSA 16,.ERROR
02100 JUMP [ASCIZ/MSG/
02200 ]
02300 >
02400
02500 REGS: BLOCK 20
02600
02610 ; CALL USETI(WDS/128)
02613
02616 USETI: 0
02619 MOVE 1,@(16)
02622 USETI CH2,(1)
02625 JRA 1,1(16)
02628
02631 ; CALL ZBIT(<INPUT ARRAY>,<OUTPUT ARRAY>)
02634 ; (256 WDS) (512 WDS)
02637
02640 ZBIT: 0
02643 MOVE 2,(16)
02646 MOVE 1,1(16)
02649 HRLI 2,-=256
02652
02655 LOOP: HLRE 0,(2)
02658 FSC 0,233 ;FLOAT IT
02661 MOVEM 0,(1) ; GETS 512 18-BIT SAMPLES OUT OF 256 WDS.
02664 HRRE 0,(2)
02667 FSC 0,233
02670 MOVEM 0,1(1)
02673 ADDI 1,2
02676 AOBJN 2,LOOP
02679 JRA 16,1(16)
02700
06800 ;CALL GETFI2(<FILE>)
06900
07000 GETFI2: 0
07100 MOVE 0,@0(16)
07200 MOVEM 0,FILNAM
07300 JSA 16,INTFIZ
07400 MOVE 0,[SIXBIT/DMD/]
07500 MOVEM 0,DIR+1
07600 JSA 16,LKUP
07700 SKIPA
07800 JRST GETF3
07900 SETZM DIR+1
08000 JSA 16,LKUP
08100 0
08200 GETF3: JRA 16,1(16)
08300
08400 LKUP: 0
08500 SETZM DIR+2
08600 SETZM DIR+3
08700 LOOKUP CH3,DIR
08800 JRA 16,0(16)
08900 JRA 16,1(16)
09000
09100 INTFIZ: 0 ;INITS DSK FOR INPUT
09200 MOVEI REGS
09300 BLT REGS+3
09400 INIT CH3,17
09500 SIXBIT/DSK/
09600 0
09700 ERROR <CAN'T INIT DSK!>
09800 JRST INTF4
09900
10000 DIR: BLOCK 4
10100
10200
10300 ;CALL FASTI2(<ARRAY>,<NO. WORDS>)
10400
10500 FASTI2: 0
10600 HRRZ 0,0(16)
10700 SUBI 0,1
10800 MOVEM 0,COM
10900 MOVN 0,@1(16)
11000 HRLM 0,COM
11100 INPUT CH3,COM
11200 STATZ CH3,740000
11300 0
11400 JRA 16,2(16)
11450
12000 COM: OCT 0,0
12100 COM1: 0
12200 BLKNUM: 0
12300
18800
18900 INTFIL: 0 ;INITS DSK
19000 MOVEI REGS
19100 BLT REGS+3
19200 INIT CH2,17
19300 SIXBIT/DSK/
19400 0
19500 ERROR <CAN'T INIT DSK!>
19600 INTF4: MOVE 0,FILNAM#
19700 MOVEM 0,FN#
19800 MOVE 1,[POINT 7,FN]
19900 INTF3: MOVE 2,[POINT 6,DIR]
20000 SETZM DIR
20100 MOVEI 3,5
20200 INTF1: ILDB 0,1
20300 CAIN 0," "
20400 JRST INTF2
20500 SUBI 0,40
20600 IDPB 0,2
20700 SOJG 3,INTF1
20800 INTF2: HRLZI REGS
20900 BLT 3
21000 JRA 16,0(16)
21100
31400 .ERROR: 0
31500 OUTSTR [ASCIZ/?
31600 /] ;MAKE SURE HE CAN SEE HIS ERROR
31700 OUTSTR @(16) ;OUTPUT ERROR MESSAGE
31800 CALLI 1,12 ;LET USER CONTI2UE
31900 JRA 16,1(16)
32000 UDPBUF: BLOCK 40
32100
32200
32300
35200 ; CALL NORM(ARRAY,SIZE,FACTOR)
35300 ; UNPACKS 18-BIT SMPLS, NORMALIZES, REPACKS AS 12-BIT SMPLS.
35400 ; ---- 3K OF 18-BIT BECOMES 2K OF 12-BIT
35500 ;****** BE SURE TO SET FACTOR FOR 9-BIT SO MAXAMP IS NOT >255.
35600
39100 END